import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
//引入mockServe(执行该文件)
import '@/mock/mockServe'
//引入swiper样式
import 'swiper/css/swiper.css'
// 将TypeNav注册为全局组件
import TypeNav from '@/components/TypeNav'
Vue.component(TypeNav.name, TypeNav)
//将轮播图注册为全局组件
import Carousel from '@/components/Carousel'
Vue.component(Carousel.name, Carousel)
//将分页器注册为全局组件
import Pagination from '@/components/Pagination'
Vue.component(Pagination.name, Pagination)
//统一引入api里面的所有获取数据的接口函数
import * as API from '@/api'
//按需引入elementUI
import { Button, MessageBox } from 'element-ui'
//注册button插件
Vue.use(Button)
//全局注册，挂载到vue原型上
Vue.prototype.$msgbox = MessageBox;
Vue.prototype.$alert = MessageBox.alert;
//引入并注册图片懒加载插件
import VueLazyload from 'vue-lazyload'
//引入可达鸭动图
import kdy from '@/assets/1.gif'
Vue.use(VueLazyload, {
  //默认加载图片
  loading: kdy
  /*
  使用：将需要懒加载的图片的src替换为v-lazy指令
  */
})
//引入表单校验插件
import '@/plugins/validate'

Vue.config.productionTip = false
new Vue({
  router,
  store,
  render: h => h(App),
  //全局事件总线$bus的配置
  // 在beforeCreate里面模板还没解析，此时的this就是new Vue的空模板
  //而这个this放在了Vue的原型上面，因此所有的vc实例都可以访问到
  beforeCreate() {
    Vue.prototype.$bus = this;
    // 将所有的api挂载到vue构造函数的原型对象上
    Vue.prototype.$API = API
  },
}).$mount('#app')
